/**
 * Copyright(c) 2013 Jade Techonologies Co., Ltd.
 *
 * History:
 *   13-7-11 上午9:36 Created by sky
 */
package com.jade.modules.message.sms;

/**
 * 短信客户端。
 *
 * @author sky
 * @version 1.0 13-7-11 上午9:36
 */
public interface SmsClient
{
    /**
     * 发送消息。
     *
     * @param message 消息对象
     * @param params  消息发送业务参数
     * @return 消息发送结果
     */
    public SmsResult send(SmsMessage message, SmsServiceParams params);

    /**
     * 发送多条消息。
     *
     * @param messages 消息对象数组
     * @param params   消息发送业务参数
     * @return 消息发送结果
     */
    public SmsResult[] send(SmsMessage[] messages, SmsServiceParams params);


    /** 关闭客户端。 */
    public void close();

    /**
     * 判断客户端是否可以接收消息。
     *
     * @return 如果可以接收消息，返回true；否则返回false。
     */
    public boolean isReadable();

    /**
     * 判断客户端是否可以发送消息。
     *
     * @return 如果可以发送消息，返回true；否则返回false。
     */
    public boolean isWritable();

    /**
     * 设置消息侦听器。
     *
     * @param listener 消息侦听器。
     */
    public void setMessageListener(SmsListener listener);
}
